[INFO] cloning repository https://github.com/rlcurrall/rlox
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rlcurrall/rlox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frlcurrall%2Frlox", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frlcurrall%2Frlox'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fb276ad07ebaeb270af462e31e76aba6a29ca8c9
[INFO] testing rlcurrall/rlox against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frlcurrall%2Frlox" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rlcurrall/rlox
[INFO] finished tweaking git repo https://github.com/rlcurrall/rlox
[INFO] tweaked toml for git repo https://github.com/rlcurrall/rlox written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rlcurrall/rlox on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rlcurrall/rlox already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c24e4f3fa283e4775ca1a6b05b4a5979db58b0b7e6efda9c06e26ded9e4f2103
[INFO] running `Command { std: "docker" "start" "-a" "c24e4f3fa283e4775ca1a6b05b4a5979db58b0b7e6efda9c06e26ded9e4f2103", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c24e4f3fa283e4775ca1a6b05b4a5979db58b0b7e6efda9c06e26ded9e4f2103", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c24e4f3fa283e4775ca1a6b05b4a5979db58b0b7e6efda9c06e26ded9e4f2103", kill_on_drop: false }`
[INFO] [stdout] c24e4f3fa283e4775ca1a6b05b4a5979db58b0b7e6efda9c06e26ded9e4f2103
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ade6428d3fea91b6ae19670d4e1b2f2596fd8c2043d2ee086bff86dbde5d8dc8
[INFO] running `Command { std: "docker" "start" "-a" "ade6428d3fea91b6ae19670d4e1b2f2596fd8c2043d2ee086bff86dbde5d8dc8", kill_on_drop: false }`
[INFO] [stderr]    Compiling rlox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/parser.rs:408:17
[INFO] [stdout]     |
[INFO] [stdout] 399 | /                 loop {
[INFO] [stdout] 400 | |                     if arguments.len() > 255 {
[INFO] [stdout] 401 | |                         // todo - improve this error
[INFO] [stdout] 402 | |                         return Err(RuntimeError::general_error("Too many arguments"));
[INFO] [stdout] ...   |
[INFO] [stdout] 405 | |                     arguments.push(self.assignment()?);
[INFO] [stdout] 406 | |                 }
[INFO] [stdout]     | |_________________- any code following this expression is unreachable
[INFO] [stdout] 407 |
[INFO] [stdout] 408 |                   todo!();
[INFO] [stdout]     |                   ^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]   --> src/error.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     ScanError {
[INFO] [stdout]    |     --------- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 29 |         offset: usize,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ParseError` and `InvalidArgumentTarget` are never constructed
[INFO] [stdout]   --> src/error.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum RuntimeError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 32 |     ParseError(String, Token),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 33 |     InvalidArgumentTarget(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `general_error` is never used
[INFO] [stdout]   --> src/error.rs:47:19
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl RuntimeError {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(crate) fn general_error(message: &str) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/parser.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Parser {
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 108 |     pub(crate) fn new(tokens: Vec<Token>) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub(crate) fn parse(&mut self) -> Result<Vec<Stmt>> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn previous(&self) -> Token {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn current(&self) -> Token {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn advance(&mut self) -> Token {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn is_match(&mut self, types: &[TokenValue]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn is_at_end(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn peek(&self) -> Result<Token> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn consume(&mut self, expected: TokenValue, message: &str) -> Result<Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn consume_identifier(&mut self, message: &str) -> Result<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn declaration(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     fn block(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     fn expression_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn expression(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn assignment(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     fn logic_or(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn logic_and(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn equality(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn comparison(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     fn term(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn factor(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     fn unary(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |     fn call(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn primary(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stmt` is never used
[INFO] [stdout]    --> src/parser.rs:462:10
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub enum Stmt {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]    --> src/parser.rs:468:10
[INFO] [stdout]     |
[INFO] [stdout] 468 | pub enum Expr {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]    --> src/parser.rs:524:10
[INFO] [stdout]     |
[INFO] [stdout] 524 | pub enum Literal {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value`, `lexeme`, and `line` are never read
[INFO] [stdout]  --> src/token.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Token {
[INFO] [stdout]   |            ----- fields in this struct
[INFO] [stdout] 5 |     pub value: TokenValue,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 6 |     pub lexeme: String,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 7 |     pub line: usize,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Token` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.50s
[INFO] running `Command { std: "docker" "inspect" "ade6428d3fea91b6ae19670d4e1b2f2596fd8c2043d2ee086bff86dbde5d8dc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ade6428d3fea91b6ae19670d4e1b2f2596fd8c2043d2ee086bff86dbde5d8dc8", kill_on_drop: false }`
[INFO] [stdout] ade6428d3fea91b6ae19670d4e1b2f2596fd8c2043d2ee086bff86dbde5d8dc8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c47a751c0d5c099c4b22a62c4570ead163f066d64b30dfb44c27ce9fe73701ec
[INFO] running `Command { std: "docker" "start" "-a" "c47a751c0d5c099c4b22a62c4570ead163f066d64b30dfb44c27ce9fe73701ec", kill_on_drop: false }`
[INFO] [stderr]    Compiling rlox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/parser.rs:408:17
[INFO] [stdout]     |
[INFO] [stdout] 399 | /                 loop {
[INFO] [stdout] 400 | |                     if arguments.len() > 255 {
[INFO] [stdout] 401 | |                         // todo - improve this error
[INFO] [stdout] 402 | |                         return Err(RuntimeError::general_error("Too many arguments"));
[INFO] [stdout] ...   |
[INFO] [stdout] 405 | |                     arguments.push(self.assignment()?);
[INFO] [stdout] 406 | |                 }
[INFO] [stdout]     | |_________________- any code following this expression is unreachable
[INFO] [stdout] 407 |
[INFO] [stdout] 408 |                   todo!();
[INFO] [stdout]     |                   ^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]   --> src/error.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     ScanError {
[INFO] [stdout]    |     --------- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 29 |         offset: usize,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ParseError` and `InvalidArgumentTarget` are never constructed
[INFO] [stdout]   --> src/error.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum RuntimeError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 32 |     ParseError(String, Token),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 33 |     InvalidArgumentTarget(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `general_error` is never used
[INFO] [stdout]   --> src/error.rs:47:19
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl RuntimeError {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(crate) fn general_error(message: &str) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/parser.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Parser {
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 108 |     pub(crate) fn new(tokens: Vec<Token>) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub(crate) fn parse(&mut self) -> Result<Vec<Stmt>> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn previous(&self) -> Token {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn current(&self) -> Token {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn advance(&mut self) -> Token {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn is_match(&mut self, types: &[TokenValue]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn is_at_end(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn peek(&self) -> Result<Token> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn consume(&mut self, expected: TokenValue, message: &str) -> Result<Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn consume_identifier(&mut self, message: &str) -> Result<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn declaration(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     fn block(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     fn expression_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn expression(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn assignment(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     fn logic_or(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn logic_and(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn equality(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn comparison(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     fn term(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn factor(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     fn unary(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |     fn call(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn primary(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stmt` is never used
[INFO] [stdout]    --> src/parser.rs:462:10
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub enum Stmt {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]    --> src/parser.rs:468:10
[INFO] [stdout]     |
[INFO] [stdout] 468 | pub enum Expr {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]    --> src/parser.rs:524:10
[INFO] [stdout]     |
[INFO] [stdout] 524 | pub enum Literal {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value`, `lexeme`, and `line` are never read
[INFO] [stdout]  --> src/token.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Token {
[INFO] [stdout]   |            ----- fields in this struct
[INFO] [stdout] 5 |     pub value: TokenValue,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 6 |     pub lexeme: String,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 7 |     pub line: usize,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Token` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.65s
[INFO] running `Command { std: "docker" "inspect" "c47a751c0d5c099c4b22a62c4570ead163f066d64b30dfb44c27ce9fe73701ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c47a751c0d5c099c4b22a62c4570ead163f066d64b30dfb44c27ce9fe73701ec", kill_on_drop: false }`
[INFO] [stdout] c47a751c0d5c099c4b22a62c4570ead163f066d64b30dfb44c27ce9fe73701ec
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e719bbbf059ee7fe4f13c06106a17ceca75587dd3afaf169353aef0d4773a809
[INFO] running `Command { std: "docker" "start" "-a" "e719bbbf059ee7fe4f13c06106a17ceca75587dd3afaf169353aef0d4773a809", kill_on_drop: false }`
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]    --> src/parser.rs:408:17
[INFO] [stderr]     |
[INFO] [stderr] 399 | /                 loop {
[INFO] [stderr] 400 | |                     if arguments.len() > 255 {
[INFO] [stderr] 401 | |                         // todo - improve this error
[INFO] [stderr] 402 | |                         return Err(RuntimeError::general_error("Too many arguments"));
[INFO] [stderr] ...   |
[INFO] [stderr] 405 | |                     arguments.push(self.assignment()?);
[INFO] [stderr] 406 | |                 }
[INFO] [stderr]     | |_________________- any code following this expression is unreachable
[INFO] [stderr] 407 |
[INFO] [stderr] 408 |                   todo!();
[INFO] [stderr]     |                   ^^^^^^^ unreachable statement
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `offset` is never read
[INFO] [stderr]   --> src/error.rs:29:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |     ScanError {
[INFO] [stderr]    |     --------- field in this variant
[INFO] [stderr] ...
[INFO] [stderr] 29 |         offset: usize,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variants `ParseError` and `InvalidArgumentTarget` are never constructed
[INFO] [stderr]   --> src/error.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub enum RuntimeError {
[INFO] [stderr]    |          ------------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 32 |     ParseError(String, Token),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 33 |     InvalidArgumentTarget(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `general_error` is never used
[INFO] [stderr]   --> src/error.rs:47:19
[INFO] [stderr]    |
[INFO] [stderr] 37 | impl RuntimeError {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub(crate) fn general_error(message: &str) -> Self {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Parser` is never constructed
[INFO] [stderr]  --> src/parser.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct Parser {
[INFO] [stderr]   |                   ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/parser.rs:108:19
[INFO] [stderr]     |
[INFO] [stderr] 107 | impl Parser {
[INFO] [stderr]     | ----------- associated items in this implementation
[INFO] [stderr] 108 |     pub(crate) fn new(tokens: Vec<Token>) -> Self {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 116 |     pub(crate) fn parse(&mut self) -> Result<Vec<Stmt>> {
[INFO] [stderr]     |                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 144 |     fn previous(&self) -> Token {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 148 |     fn current(&self) -> Token {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     fn advance(&mut self) -> Token {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 160 |     fn is_match(&mut self, types: &[TokenValue]) -> bool {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 167 |     fn is_at_end(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 |     fn peek(&self) -> Result<Token> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 181 |     fn consume(&mut self, expected: TokenValue, message: &str) -> Result<Token> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 192 |     fn consume_identifier(&mut self, message: &str) -> Result<Token> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 204 |     fn declaration(&mut self) -> Result<Stmt> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     fn statement(&mut self) -> Result<Stmt> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 230 |     fn block(&mut self) -> Result<Stmt> {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 242 |     fn expression_statement(&mut self) -> Result<Stmt> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 248 |     fn expression(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 252 |     fn assignment(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 274 |     fn logic_or(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 291 |     fn logic_and(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 308 |     fn equality(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 324 |     fn comparison(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 345 |     fn term(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 361 |     fn factor(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 377 |     fn unary(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 391 |     fn call(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 424 |     fn primary(&mut self) -> Result<Expr> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Stmt` is never used
[INFO] [stderr]    --> src/parser.rs:462:10
[INFO] [stderr]     |
[INFO] [stderr] 462 | pub enum Stmt {
[INFO] [stderr]     |          ^^^^
[INFO] [stdout] 
[INFO] [stderr] 
[INFO] [stdout] running 0 tests
[INFO] [stderr] warning: enum `Expr` is never used
[INFO] [stdout] 
[INFO] [stderr]    --> src/parser.rs:468:10
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]     |
[INFO] [stdout] 
[INFO] [stderr] 468 | pub enum Expr {
[INFO] [stderr]     |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Literal` is never used
[INFO] [stderr]    --> src/parser.rs:524:10
[INFO] [stderr]     |
[INFO] [stderr] 524 | pub enum Literal {
[INFO] [stderr]     |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `value`, `lexeme`, and `line` are never read
[INFO] [stderr]  --> src/token.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Token {
[INFO] [stderr]   |            ----- fields in this struct
[INFO] [stderr] 5 |     pub value: TokenValue,
[INFO] [stderr]   |         ^^^^^
[INFO] [stderr] 6 |     pub lexeme: String,
[INFO] [stderr]   |         ^^^^^^
[INFO] [stderr] 7 |     pub line: usize,
[INFO] [stderr]   |         ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Token` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `rlox` (bin "rlox" test) generated 10 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rlox-db83f109e652e88a)
[INFO] running `Command { std: "docker" "inspect" "e719bbbf059ee7fe4f13c06106a17ceca75587dd3afaf169353aef0d4773a809", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e719bbbf059ee7fe4f13c06106a17ceca75587dd3afaf169353aef0d4773a809", kill_on_drop: false }`
[INFO] [stdout] e719bbbf059ee7fe4f13c06106a17ceca75587dd3afaf169353aef0d4773a809
